package cn.b.sky.mes.hr.service;

import java.util.List;

import cn.b.sky.mes.hr.model.PersonnelType;
import cn.b.sky.mes.hr.model.condition.PersonnelTypeCondition;
import cn.b.sky.common.model.BatchJobReport;

public interface PersonnelTypeService {

  /**
   * 
   * <strong>Title : getPersonnelTypeList<br></strong>
   * <strong>Description : </strong>根据条件查询人员类型<br> 
   * <strong>Create on : 2016-3-24 下午7:14:36<br></strong>
   * <p>
   * @param condition
   * @return
   * List<PersonnelType>
   * @throws 
   * @author ZiQiang.Zhao<br>
   * @version <strong>v1.0.0</strong><br>
   * <br> 
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<PersonnelType> getPersonnelTypeListByCondition(PersonnelTypeCondition condition);

  /**
   * 
   * <strong>Title : getPersonnelTypeCountByCondition<br></strong>
   * <strong>Description : </strong>根据条件查询人员类型数量<br> 
   * <strong>Create on : 2016-3-25 上午8:56:38<br></strong>
   * <p>
   * @param condition
   * @return
   * int
   * @throws 
   * @author ZiQiang.Zhao<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int getPersonnelTypeCountByCondition(PersonnelTypeCondition condition);

  /**
   * 
   * <strong>Title : insertPersonnelType<br></strong>
   * <strong>Description : </strong>添加人员类型<br> 
   * <strong>Create on : 2016-3-25 下午12:59:02<br></strong>
   * <p>
   * @param personnelType
   * void
   * @throws 
   * @author ZiQiang.Zhao<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertPersonnelType(PersonnelType personnelType);

  /**
   * 
   * <strong>Title : updatePersonnelType<br></strong>
   * <strong>Description : </strong>修改人员类型信息<br> 
   * <strong>Create on : 2016-3-25 下午12:59:54<br></strong>
   * <p>
   * @param personnelType
   * void
   * @throws 
   * @author ZiQiang.Zhao<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updatePersonnelType(PersonnelType personnelType);

  /**
   * 
   * <strong>Title : getPersonnelTypeInfo<br></strong>
   * <strong>Description : </strong>查询<br> 
   * <strong>Create on : 2016-3-25 下午2:11:52<br></strong>
   * <p>
   * @param siteCode
   * @param personnelTypeCode
   * @return
   * PersonnelType
   * @throws 
   * @author ZiQiang.Zhao<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  PersonnelType getPersonnelTypeInfo(String siteCode, String personnelTypeCode);

  /**
   * 
   * <strong>Title : deletePersonnelType<br></strong>
   * <strong>Description : </strong>删除<br> 
   * <strong>Create on : 2016-3-25 下午2:12:19<br></strong>
   * <p>
   * @param siteCode
   * @param personnelTypeCode
   * @return
   * BatchJobReport
   * @throws 
   * @author ZiQiang.Zhao<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  BatchJobReport deletePersonnelType(String siteCode, String personnelTypeCode);

  /**
   * 
   * <strong>Title : getPersonnelTypeSuggestByCondition<br></strong>
   * <strong>Description : </strong>查询人员类型建议接口<br> 
   * <strong>Create on : 2016-3-30 下午1:48:39<br></strong>
   * <p>
   * @param condition
   * @return
   * List<PersonnelType>
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<PersonnelType> getPersonnelTypeSuggestByCondition(PersonnelTypeCondition condition);
}
